package com.zto.sch.base.normal.npe;

import org.junit.Test;

import java.util.Objects;
import java.util.Optional;

/**
 * @program: sch-diy-parent
 * @description:
 * @author: sch
 * @create: 2021-03-02 09:28
 **/
public class NpeTest {
    public static void main(String[] args) {
        PersonDTO personDTO = new PersonDTO();

        Person person = new Person();
//        person.setName("xiaohai");
//        person.setAge(10);
        if (Objects.nonNull(person)) {
            personDTO.setNameDTO(person.getName());
            personDTO.setAgeDTO(person.getAge());
        } else {
            personDTO.setNameDTO("");
            personDTO.setAgeDTO(0);
        }

        System.out.println(personDTO);
    }


    @Test
    public void shouldConvertDTO() {
        PersonDTO personDTO = new PersonDTO();

        Person person = getPerson();

        personDTO.setNameDTO(person.getName());
        personDTO.setAgeDTO(person.getAge());
    }

    @Test
    public void shouldConvertDTO2() {
        PersonDTO personDTO = new PersonDTO();

        Person person = getPerson();
        Optional.ofNullable(getPerson()).ifPresent(person1 -> {
            personDTO.setNameDTO(person.getName());
            personDTO.setAgeDTO(person.getAge());
        });

        personDTO.setNameDTO(person.getName());
        personDTO.setAgeDTO(person.getAge());
    }

    private Person getPerson() {

        return new NullPersonDTO();
    }
}
